"""
主题: 在不同的Python解释器之间交互
问题: 你在不同的机器上面运行着多个Python解释器实例，并希望能够在这些解释器之间通过消息来交换数据。
提示 : 
   解释器运行在同一台机器上面，那么你可以使用另外的通信机制
   Unix域套接字: s = Listener('/tmp/myconn', authkey=b'peekaboo')
   Windows命名管道: s = Listener(r'\\.\pipe\myconn', authkey=b'peekaboo')
"""

from multiprocessing.connection import Listener
import traceback

def echo_client(conn):
    try:
        while True:
            msg = conn.recv()
            conn.send(msg)
    except EOFError:
        print('Connection closed')

def echo_server(address, authkey):
    serv = Listener(address, authkey=authkey)
    while True:
        try:
            client = serv.accept()

            echo_client(client)
        except Exception:
            traceback.print_exc()

echo_server(('', 20001), authkey=b'peekaboo')